var AudioNode = function AudioNode(a, b, c) {
    //如果不能new  要抛出一个错误
    throw new TypeError("Illegal constructor");
}//构造函数
catvm.safefunction(AudioNode); //tostring 保护
//设置原型链上显示的名字***************************************************************************
Object.defineProperties(AudioNode.prototype, {
    [Symbol.toStringTag]: {
        value: "AudioNode",
        configurable: true
    }
});

// 原型指向原型父亲***************************************************************************
// OfflineAudioContext = {};
AudioNode.prototype.__proto__ = EventTarget.prototype
//该环境下的属性和方法***************************************************************************
AudioNode.prototype.connect = function connect(x) {
    // 使你能将一个节点的输出连接到一个指定目标
    // 参数 destination
    // 需要连接的 AudioNode 或 AudioParam.
    // outputIndex 可选
    // 一个索引，用于描述当前  AudioNode 的哪个输出会连接到destination。索引数字是由输出频道（详见 Audio channels）的数量来确定的。当你只能将给定的输出连接到给定的输入一次（重复的尝试会被忽略）时，可以通过多次调用 connect() 将一个输出连接到多个输入。可以通过这样来实现扇出。这个参数的默认值为0。
    // inputIndex 可选
    // 一个索引，用于描述当前  AudioNode 会连接到destination的哪个输入，它的默认值是0。索引数字是由输入频道（详见 Audio channels）的数量来确定的。将一个  AudioNode 连接回之前的 AudioNode，以此形成一个圈是可行的。 不过只在这个圈里有至少一个 DelayNode (en-US) 才可行。否则会抛出一个 NotSupportedError 异常。此参数在destination是 AudioParam时不可用。
    // 返回值
    // 如果destination是一个节点， connect() 返回destination所表示的  AudioNode 对象的引用，允许你链式地调用数个 connect() 。某些浏览器关于该接口的旧实现会返回 undefined
    // 如果destination是一个  AudioParam，connect() 返回 undefined.
    // debugger;
};
catvm.safefunction(AudioNode.prototype.connect);
//代理***************************************************************************
AudioNode = catvm.proxy(AudioNode)